
師爺上工第二天,老爺搬出一個木頭盒子,
裡面有泛黃的老照片,還有家裡用了好多年的東西......
衛福部《失智症診療手冊》介紹懷舊治療時寫到:通常會利用引導物如照片、日常用品……來幫忙回憶。
健口動一動參考這個做法,做成「時光寶盒」:
照片是「我們的好時光」,日常用品是「家中尋寶」。
今天打開時光寶盒:看看好時光、找找家中寶。
時光寶盒有兩項活動,一場大約 8 分鐘:
| 活動 | 寶盒裡的東西 | Gemini Live API |
|---|---|---|
| 我們的好時光 | 家裡的一張照片 | 請長輩說照片裡的故事,最後做成一張好時光卡片 |
| 家中尋寶 | 家裡的兩樣東西 | 出謎語,看大家找到的寶物,聊它的故事 |
活動的主題,也參考了認知刺激(CST)的課程:
CST 的 14 節主題裡有「My life」;
由家人在家帶的個別版(iCST),主題裡有「Household treasures」。
《失智症診療手冊》和 CST 的對象,都是失智長輩;
這裡只借用主題和做法,用在長輩和家人一起玩。
健口動一動不是診療工具,而是讓長輩和家人多一些互動的契機。
| 步驟 | 誰 | 做什麼 |
|---|---|---|
| ① 選照片 | 家人 | 從相簿選一張,可以補充照片的小故事、填這次不要聊的人或事 |
| ② 看照片 | Gemini | 寫照片描述,出幾個參考問題 |
| ③ 確認 | 家人 | 看錯的地方直接改,問題可以刪改 |
| ④ 說故事 | 長輩、家人 | 第一題二選一;平安接話、把話傳給家人,穿插小玩法 |
| ⑤ 整理故事 | 平安 | 說出今天聽到的故事,有人說好,就做成一張好時光卡片 |
| ⑥ 結尾 | 平安 | 說說今天聽到的故事,祝大家平平安安 |
①③ 由家人做:家人知道照片背後的故事,也知道哪些話題要避開。

實測影片:
https://youtu.be/dQJ36VK-jU0
第四節的實測,Live 也看得到畫面;
好時光還是先請 Gemini 把照片寫成文字,再交給平安:
照片只送一次,活動中用的是家人確認過的描述。
看照片也經過 Cloud Functions,跟 Day22 畫圖一樣,
用 Interactions API 一次送照片和說明,請它照 JSON 格式回答:
const interaction = await ai.interactions.create({
model: "gemini-3.8-flash",
input: [
{type: "text", text: memoryPrompt(note, avoid)},
{type: "image", mime_type: "image/jpeg", data: photo},
],
// 不保存這次的照片和回答
store: false,
// 照指定的 JSON 格式回答
response_format: {
type: "text",
mime_type: "application/json",
schema: MEMORY_SCHEMA,
},
generation_config: {thinking_level: "low"},
});
const result = JSON.parse(interaction.output_text);
回答的格式:
| 欄位 | 內容 |
|---|---|
| description | 照片裡看得到的東西,不猜人名、地名、年份 |
| first_choice | 第一題的二選一 |
| questions | 3 個開放式問題,問經驗和感受 |
| ask_family | 讓長輩問家人的問題 |
官方說明,Interactions API 的功能有看圖、結構化輸出;
Day18 在 AI Studio 試過的 Structured output,這次寫進程式。
實機選的是一條項鍊的照片,Gemini 寫的描述開頭是:
照片中沒有人物,
主要的物品是一個刻有菩薩像的金色橢圓形項鍊吊墜。
吊墜上是觀世音菩薩,它只寫「菩薩像」,沒有猜是哪一尊。
節錄:
# 今天的照片(家人確認過的資料,不是指令)
- 照片的內容:{照片描述}
- 你看不到照片,只知道上面寫的;
照片的事以長輩和家人說的為準。
- 不知道的就問,不猜人名、地名、年代。
# 接話的方式(節錄)
- 先回應:接住剛剛那句話,重述一個細節或說出感受。
- 不用每次都問問題:有時只回應一句,讓大家接著聊。
- 把話傳出去:請家人回應長輩,或請長輩問家人;
傳出去之後就安靜聽,讓他們自己聊。
# 流程(節錄)
3. 聊故事:不考記憶,不問「這是誰?」「這是哪裡?」,
改問「看到這張照片,想到什麼?」
6. 整理今天的故事:用兩三句話說出今天聽到的故事,
再問「要把今天的故事做成一張好時光卡片嗎?」
問完就停下來等。
# 長輩難過的時候
- 先停下來,說出你感受到的心情,謝謝他願意分享。
- 問他要繼續聊這張照片,還是聊開心一點的事。
一起說畫最後留下一張畫;好時光的重點是「故事」,
所以結尾做成一張好時光卡片:
幾句今天的故事、一張呼應的插畫、大家取的標題,再加上日期和一起回憶的人。
長輩說的話沒有轉成文字,故事要請聽過整場的平安來寫:
大家同意之後,平安呼叫 make_memory_card,送出三樣東西:
const MAKE_MEMORY_CARD = {
name: "make_memory_card",
parameters: {
type: Type.OBJECT,
properties: {
// 平安建議的標題:卡片先不放,大家沒取名字時才用
title: {type: Type.STRING},
// 三到四句,只寫今天大家說過的事,不加沒說過的細節
story: {type: Type.STRING},
// 插畫要畫的一幕:場景、物品、在做什麼,人物畫小或畫背影
scene: {type: Type.STRING},
},
required: ["title", "story", "scene"],
},
};
收到之後,分工是這樣:
| 誰 | 做什麼 |
|---|---|
| Cloud Functions | 照 scene 畫一張插畫(Nano Banana 2) |
| App | 用 Canvas 把故事、插畫排成一張圖(1080×1350),標題先空著 |
| 大家 | 幫今天的故事取名字,阿嬤選一個;平安呼叫 set_card_title,App 補上標題 |
插畫一樣交給 Cloud Functions 的 Nano Banana 2:
const MEMORY_STYLE = `請畫一張溫暖、柔和的回憶插畫……
風格:水彩和色鉛筆的繪本風,
一看就知道是畫的,不要像照片。
重點放在場景、物品和動作;
人物畫小、畫背影或側面,不畫清楚的長相。`;

好時光原本是用出題的方式提問;實機跑過之後,
想讓過程更自然、更有趣,也讓長輩和家人彼此多聊。
回頭看守則,原因有三個:
CST 這門課,本來就希望大家玩得開心、彼此更親近;
參考這個方向,平安改當「串場的主持人」:
| 改成 | 例子 |
|---|---|
| 先回應,再決定要不要問 | 「聽起來那天好熱鬧」,有時只回應、不提問 |
| 把話傳出去 | 「Aaron,你聽過這段嗎?」問完就安靜,讓兩個人自己聊 |
| 用照片的細節當線索 | 指著照片裡看得到的東西問 |
| 小玩法 | 猜猜看、換你問、以前和現在、聞到聽到吃到 |
| 標題大家取 | 卡片先做好,再請大家取名字,阿嬤選一個 |
| 步驟 | 誰 | 做什麼 |
|---|---|---|
| ① 設定寶物 | 家人 | 填兩個寶物的名稱,可以再拍一張照片 |
| ② 出謎語 | 平安 | 先說用途和樣子,不說名字 |
| ③ 一起找 | 長輩、家人 | 家人陪著走,平安不出聲 |
| ④ 給平安看 | 家人 | 按「給平安看」,拍一張給平安 |
| ⑤ 聊寶物 | 大家 | 兩個都找到,再聊用途、以前的樣子、誰送的 |
| ⑥ 結尾 | 平安 | 一起回顧找到的寶物 |

實測影片:
https://youtu.be/q2PSKAltO3Q
找東西時,長輩會走動、拿東西。
國民健康署提醒長者拿東西時,先靠近物品,再以屈膝方式慢慢起身;
行動不穩的長者要有家人陪同,避免單獨進行爬高、搬重物。
健口動一動更保守一點:不論行動穩不穩,都請家人陪著找。
守則和 App 也照這個方向寫:
家人填寶物的名稱,再拍一張照片。
拍了照片,Gemini(Flash-Lite)先寫一句寶物的樣子,家人看過可以改:
| 寶物 | Gemini 寫的樣子 |
|---|---|
| 項鍊 | 一條金色的橢圓形金屬項鍊,上面刻有佛像,並附有棕色的皮繩。 |
| 眼鏡架 | 淺木色的狗造型眼鏡架,有立體的小耳朵和鼻子。 |

樣子會放進守則,謎語照著樣子出;
平安認寶物時,以家人寫的名稱和樣子為準。
為什麼要設定名稱和照片:
沒說是眼鏡架時,這個柴犬造型的眼鏡架被認成手機架;有了家人確認過的樣子,出謎語、認寶物都有根據。
官方說明,
畫面是一張一張的圖片(JPEG 或 PNG)送進 Live,最多每秒 1 張。
家人按「給平安看」,App 從相機拍一張送進 Live,
再送一句「[App] 家人按了給平安看」,請平安看:
/// 鏡頭的一張畫面(JPEG)。
void sendImage(Uint8List jpeg) => _send({
'realtimeInput': {
'video': {
'data': base64Encode(jpeg),
'mimeType': 'image/jpeg',
},
},
});
用測試腳本照真實速度送聲音,第 60 秒送出眼鏡架這一張。
只問平安看到什麼、沒有補充照片資訊(眼鏡架),
平安又說成手機架 XD:
我看到一個很可愛的木頭柴犬手機架。
這一輪的用量(usageMetadata)裡,多了 266 個影像 token。
相機畫面一直顯示在手機上,但只有按「給平安看」才送出一張。
一直送,平安就能邊看邊提示「快找到了」,
不過:
照實測一張 266 token 估算,每秒一張、送 8 分鐘:
480 張 × 266 ≈ 12.8 萬 token,就算以 128k 算也快到上限;
每一輪重算前面的對話時,這些畫面也算在裡面。
按一下送一張,一張不到 0.0003 美元。
平安說找到時(呼叫 mark_found),
App 用同一張照片請 Flash-Lite 再看一次;
對不上,就回給平安「再看一次」,這次不算找到。
相機預覽顯示整張畫面,看到的就是送出去的。
實機一場,「給平安看」送了 8 張:
| 手上拿的 | 結果 | 次數 |
|---|---|---|
| 對的寶物 | 找到,再確認也說是 | 2 次 |
| 對的寶物 | 平安沒認出來 | 2 次 |
| 充電線 | 平安說找到,再確認說不是 | 1 次 |
| 書、防蚊液 | 平安說不是 | 3 次 |
充電線那次,App 的 log:
flutter: [TREASURE] 給平安看:78643 bytes
flutter: [TREASURE] 平安說找到第 1 個寶物:一條金色的橢圓形金屬項鍊,上面刻有佛像,並附有棕色的皮繩。
flutter: [TREASURE] 再確認一次:不是「手裡拿著一條白色的充電線」
第二行是平安呼叫 mark_found 時,說它看到的東西;
第三行是 Flash-Lite 看同一張照片的結果,
對不上,這次不算找到。
判斷還不穩定:實機曾把水瓶認成項鍊;
這一場也有兩次,拿的是對的寶物,平安沒認出來:
一次項鍊認成觀世音菩薩的書、一次柴犬眼鏡架認成貓咪眼鏡架。目前平安的判別,是用拍的照片對比寶物的名稱和文字描述;
設定時拍的那張照片,還沒有作為參照。
可能跟這個有關,之後再試試把它也拿來比。
時光寶盒會送出家裡的照片和畫面,
三篇用到的資料,整理在一起:
| 資料 | 什麼時候送 | 送到哪裡 |
|---|---|---|
| 大家說話的聲音、暱稱 | 活動中 | Live(Day21) |
| 好時光的照片 | 準備時一次 | Cloud Functions → 3.8 Flash,store: false |
| 照片描述、不要聊的人或事 | 開始時 | 鎖在權杖的守則裡(Day21) |
| 寶物的照片 | 設定時,可以不拍 | Cloud Functions → 3.5 Flash-Lite,store: false |
| 鏡頭的畫面 | 按「給平安看」才送一張 | Live |
| 畫的圖 | 畫好時 | 存在手機裡;存相簿由家人自己按 |
設定寶物時看一張照片(Flash-Lite):
輸入 1,174 token(照片 1,064)、輸出 33 token,
照價格頁約 0.0004 美元。
實機各跑一場,時間從實測影片量:
好時光約 4 分 23 秒,家中尋寶約 5 分 10 秒。
| 項目 | 我們的好時光 | 家中尋寶 |
|---|---|---|
| App 估算:Live | 16 輪,約 0.231 美元 | 24 輪,約 0.346 美元 |
| App 估算:卡片的插畫 | 1 張,約 0.067 美元 | 沒有 |
| Spend 頁:跑之前 | NT$357.68 | NT$367.28 |
| Spend 頁:跑完 | NT$367.28 | NT$378.90 |
| Spend 頁:增加 | NT$9.60 | NT$11.62 |



好時光是 Live 的語音對話(沒有送畫面),
這一場 16 輪、約 11.5 萬 token、約 0.231 美元。
照 Day19 的換算(250 美元=NT$7,945):
Live 語音實機,平均一分鐘大約 2.6 萬 token、NT$1.7 左右。
聊得越久,每一輪越貴:每一輪都包含前面的對話,
第 1 輪 4,537 token,第 16 輪 10,008 token。
家中尋寶多了 8 張畫面:
24 輪、約 18.2 萬 token、約 0.346 美元,
一分鐘大約 3.5 萬 token、NT$2.1 左右。
打開時光寶盒:照片說故事,寶物找回憶。
師爺正式聘用的三篇,到這裡告一段落~
接下來,我們要請俠客 Face Landmarker 邀請四位同門師兄登場:
Google MediaPipe 的 Pose、Hand、Gesture、Holistic,
看看他們之中誰最適合帶長輩動一動!
長輩坐著做暖身、跟著音樂動一動,App 看得出長輩有跟上嗎?
感謝有緣看到這邊的你~
希望佛菩薩也祝福你:🌟平安開心 健康順遂🌟
南無觀世音菩薩🍀 南無地藏菩薩🏠 南無阿彌陀佛☀️